A virtual machine is a software-based implementation of a physical computing environment that includes its own virtual resources (e.g., CPU, RAM, disk storage, network connectivity). It may be useful to migrate a virtual machine to a different physical host or to another location on the same host. For example, virtual machine migration may facilitate load balancing, computer system maintenance, energy conservation, geographic relocation, and business continuity.
Virtual machine migration performed over a standard TCP connection is usually limited by flow control, which throttles the data transfer rate to guarantee reliable delivery. In addition, TCP processing errors can disrupt the speed of data transfer. These inefficiencies increase the duration of virtual machine migration and also the risk that virtual machine state may not converge during live migration.